package com.jeesite.modules.dataScreen.entity;

import cn.hutool.core.date.DatePattern;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeesite.modules.dataScreen.config.JsonTypeHandler;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author machenzhi
 * @date 2024/08/08 09:50
 */
@Data
@TableName(value = "dp_jtdn2.event_order",  autoResultMap = true)
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "事件上报", description = "事件上报")
public class EventOrder {


    @ApiModelProperty("自增主键")
    private Integer EventOrderId;

    @ApiModelProperty("应用识别码")
    private String sourceSystemCode;

    @ApiModelProperty("事件单ID")
    private String eventNum;

    @ApiModelProperty("事件单标题")
    private String eventTitle;

    @ApiModelProperty("事发时间")
    @JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN, timezone = "GMT+8")
    private Date happenTime;

    @ApiModelProperty("事发内容")
    private String eventContent;

    @ApiModelProperty("事件单类型 1：轨道大客流智处 2：地铁内涝处置 3：首路危货运输“五必查” 4：货车超限违法行为处置 5：公路阻断事件处置 6：航道运行应急响应 7：码头大客流处置 8：高速公路救接 9：火车站大客流出租汽车应急疏运 10：危货运输车辆超速报警核警处置 11：公交客服热线处置")
    private String eventType;

    @ApiModelProperty("事件单等级")
    private String eventLevel;

    @ApiModelProperty("创建人")
    private String createBy;

    @ApiModelProperty("创建部门")
    private String createDept;

    @ApiModelProperty("办理期限")
    @JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN, timezone = "GMT+8")
    private Date limitDate;

    @ApiModelProperty("事发地址")
    private String eventAddress;

    @ApiModelProperty("诉求人")
    private String appealName;

    @ApiModelProperty("诉求人电话")
    private String appealTel;

    @ApiModelProperty("诉求提出时间")
    @JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN, timezone = "GMT+8")
    private Date appealTime;

    @ApiModelProperty("事件单备注")
    private String remark;

    @ApiModelProperty("所属市州")
    private String belongCity;

    @ApiModelProperty("所属区县")
    private String belongCounty;

    @ApiModelProperty("所属街道")
    private String belongStreet;

    @ApiModelProperty("所属社区")
    private String belongCommunity;

    @ApiModelProperty("所属网格")
    private String belongGrid;

    @ApiModelProperty("经度(84坐标)")
    private String lon;

    @ApiModelProperty("纬度(84坐标)")
    private String lat;

    @ApiModelProperty("经度(2000坐标)")
    private String lon2000;

    @ApiModelProperty("纬度(2000坐标)")
    private String lat2000;

    @ApiModelProperty("涉及人数")
    private Integer peopleNumber;

    @ApiModelProperty("死亡人数")
    private Integer deathNumber;

    @ApiModelProperty("受伤人数")
    private Integer injuredNumber;

    @ApiModelProperty("经济损失")
    private BigDecimal economicLoss;

    @ApiModelProperty("其他关联地址")
    private String linkAddress;

    @ApiModelProperty("办理要求")
    private String dealContent;

    @ApiModelProperty("待办完成状态 0：未结案  1：已结案")
    private String endStatus;

    @ApiModelProperty("事件单信息扩展字段信息")
    @TableField(value = "event_extended_field", typeHandler = JsonTypeHandler.class)
    private List<EventExtendedField> eventExtendedFieldList;
}


